package com.wang.vedio.net.rxjava;


import com.wang.vedio.bean.BannerBean;
import com.wang.vedio.bean.DetailsCommentBean;
import com.wang.vedio.bean.SystemMessage;
import com.wang.vedio.bean.index.KnowledgeAndWorkResult;
import com.wang.vedio.bean.index.MyCollectDataResult;
import com.wang.vedio.bean.index.PushData;
import com.wang.vedio.net.entity.AreaBean;
import com.wang.vedio.net.entity.BaseBean;
import com.wang.vedio.net.entity.DiaoChaQuZhengBean;
import com.wang.vedio.net.entity.DictionaryBean;
import com.wang.vedio.net.entity.DictionaryItemBean;
import com.wang.vedio.net.entity.IndexWorkAndAnLiBean;
import com.wang.vedio.net.entity.InviteOrSignBean;
import com.wang.vedio.net.entity.LoginBean;
import com.wang.vedio.net.entity.OrgZdgxResult;
import com.wang.vedio.net.entity.VideoBean;
import com.wang.vedio.net.entity.VipResult;
import com.wang.vedio.net.entity.XiaDanBean;

import java.util.List;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Header;
import retrofit2.http.POST;
import rx.Observable;

interface APIService {

    /**
     * 登录接口
     */
    @POST("loginApp.client")
    Observable<BaseBean<LoginBean>> login(@Body RequestBody requestBody);

    @POST("addBusiness.client")
    Observable<BaseBean> addBusiness(@Body RequestBody requestBody);

    @POST("inviteOrSign.client")
    Observable<BaseBean<InviteOrSignBean>> inviteOrSign(@Body RequestBody requestBody);

    @POST("getVipList.client")
    Observable<BaseBean<VipResult>> getVipList(@Body RequestBody requestBody);


    @POST("signMethod.client")
    Observable<BaseBean> signMethod(@Body RequestBody requestBody);

    @POST("saveTiXian.client")
    Observable<BaseBean> saveTiXian(@Body RequestBody requestBody);



    @POST("createOrderForm.client")
    Observable<BaseBean<XiaDanBean>> createOrderForm( @Body RequestBody requestBody);

    @POST("getTuiJianList.client")
    Observable<BaseBean<List<VideoBean>>> getTuiJianList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getZuiXinList.client")
    Observable<BaseBean<List<VideoBean>>> getZuiXinList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getDictionaryItemList.client")
    Observable<BaseBean<List<DictionaryItemBean>>> getDictionaryItemList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("getZuiReList.client")
    Observable<BaseBean<List<VideoBean>>> getZuiReList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("getDetailTuiJianList.client")
    Observable<BaseBean<List<VideoBean>>> getDetailTuiJianList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getVedioListByKey.client")
    Observable<BaseBean<List<VideoBean>>> getVedioListByKey(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getLookVedioNoteList.client")
    Observable<BaseBean<List<VideoBean>>> getLookVedioNoteList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getCollectList.client")
    Observable<BaseBean<List<VideoBean>>> getCollectList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getBannerByCode.client")
    Observable<BaseBean<List<BannerBean>>> getBannerByCode(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getSystemMessage.client")
    Observable<BaseBean<SystemMessage>> getSystemMessage(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("isNeedSign.client")
    Observable<BaseBean<Boolean>> isNeedSign(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getVedioById.client")
    Observable<BaseBean<VideoBean>> getVedioById(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("deleteNoteById.client")
    Observable<BaseBean> deleteNoteById(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("addLookVedioNote.client")
    Observable<BaseBean<List<BannerBean>>> addLookVedioNote(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("getGameList.client")
    Observable<BaseBean<List<BannerBean>>> getGameList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getPingLunByVideoId.client")
    Observable<BaseBean<List<DetailsCommentBean>>> getPingLunByVideoId(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("savePingLun.client")
    Observable<BaseBean<DetailsCommentBean>> savePingLun(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("addCollect.client")
    Observable<BaseBean<String>> addVidoCollect(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getPersonCenterInfo.client")
    Observable<BaseBean<LoginBean>> getPersonCenterInfo(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("uploadMemberHeadPic.client")
    Observable<BaseBean<LoginBean>> uploadMemberHeadPic(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("addKeFu.client")
    Observable<BaseBean> addKeFu(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("saveRealName.client")
    Observable<BaseBean> saveRealName(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("system/addSysFeedback.ht")
    Observable<BaseBean> addSysFeedback(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("solr/search.ht")
    Observable<BaseBean> getFindXianSuoList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("caseSource/casePenaltyGet.ht")
    Observable<BaseBean> casePenaltyGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/crimeCaseGet.ht")
    Observable<BaseBean> crimeCaseGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/complaintsReportGet.ht")
    Observable<BaseBean> complaintsReportGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/leaderHotlineGet.ht")
    Observable<BaseBean> leaderHotlineGet(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("caseSource/caseJudgmentGet.ht")
    Observable<BaseBean> caseJudgmentGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/publicOpinionGet.ht")
    Observable<BaseBean> publicOpinionGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/ourClueSave.ht")
    Observable<BaseBean> ourClueSave(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/distribute.ht")
    Observable<BaseBean> distribute(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("knowledge/get.ht")
    Observable<BaseBean<KnowledgeAndWorkResult>> knowledgeGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("knowledge/lawSubjectSelector.ht")
    Observable<BaseBean> lawSubjectSelector(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getOrg.ht")
    Observable<BaseBean<OrgZdgxResult>> getOrg(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/caseJudgeNotDealSave.ht")
    Observable<BaseBean> caseJudgeNotDealSave(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/environmentSuperviseGet.ht")
    Observable<BaseBean> environmentSuperviseGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("myCollect/isCollection.ht")
    Observable<BaseBean> isCollection(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("myCollect/getMyCollect.ht")
    Observable<BaseBean<MyCollectDataResult>> getMyCollect(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("myCollect/addCollect.ht")
    Observable<BaseBean> addCollect(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("myCollect/cancelCollect.ht")
    Observable<BaseBean> cancelCollect(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("messageRemind/getVersionInfo.ht")
    Observable<BaseBean<List<PushData>>> getVersionInfo(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("messageRemind/getAll.ht")
    Observable<BaseBean<List<PushData>>> getMessageList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("ourClue/investigationList.ht")
    Observable<BaseBean<List<DiaoChaQuZhengBean>>> getDiaoChaQuZhengList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("getVedioListByType.client")
    Observable<BaseBean<List<VideoBean>>> getVedioListByType(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("system/getDistrict.ht")
    Observable<BaseBean<List<AreaBean>>> getDistrict(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getDistrictTreeData.ht")
    Observable<BaseBean<List<AreaBean>>> getDistrictTreeData(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getDistrictAll.ht")
    Observable<BaseBean<List<AreaBean>>> getDistrictAll(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("sysFile/delEvidenceMaterial.ht")
    Observable<BaseBean> delEvidenceMaterial(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/ourClueGet.ht")
    Observable<BaseBean<DiaoChaQuZhengBean>> ourClueGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/finishSurvey.ht")
    Observable<BaseBean> finishSurvey(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/getEvidenceDemand.ht")
    Observable<BaseBean<String>> getEvidenceDemand(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("knowledge/getNewPublishNotice.ht")
    Observable<BaseBean<IndexWorkAndAnLiBean>> getIndexWorkAndAnLi(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getDictionary.ht")
    Observable<BaseBean<List<DictionaryBean>>> getFindXianSuoDictionary(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("knowledge/getLawSubjectByOrgName.ht")
    Observable<BaseBean> getLawSubjectByOrgName(@Header("cookie") String cookie, @Body RequestBody requestBody);



    @POST("ourClue/evidenceMaterialSave.ht")
    Observable<BaseBean> evidenceMaterialSave(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("sysFile/getHttpUrlById.ht")
    Observable<BaseBean<String>> getHttpUrlById(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/getCaseByJudgeId.ht")
    Observable<BaseBean> getCaseByJudgeId(@Header("cookie") String cookie, @Body RequestBody requestBody);


    //文件上传
    @POST("sysFile/uploadFile.ht")
    Observable<BaseBean<List<DictionaryBean>>> uploadFile(@Header("cookie") String cookie, @Body RequestBody requestBody);

    //获取用户信息
    @POST("system/getUser.ht")
    Observable<BaseBean<LoginBean>> getUser(@Header("cookie") String cookie, @Body RequestBody requestBody);

    //获取用户信息
    @POST("updateMember.client")
    Observable<BaseBean> updateMember(@Header("cookie") String cookie, @Body RequestBody requestBody);

}
